package com.br.planningrun.activity;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;

import com.br.planningrun.R;
import com.br.planningrun.entidade.Treino;
import com.br.planningrun.repositorio.RepositorioTreino;

public class ListaTreinoActivity extends Activity {
	public ListView lista;
	private ArrayList<Treino> arrayTreino;

	private RepositorioTreino repTreino = null;

	int codigoPlano = -1;
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {		setTitle("PLANNING RUN");
		super.onCreate(savedInstanceState);
		setContentView(R.layout.listatreinos);

		repTreino = new RepositorioTreino ( getApplicationContext());


		// Recupera informacao passada pela tela anterior
		Bundle b = this.getIntent().getExtras();                
		if (b != null && b.containsKey("codigo")) {
			codigoPlano = b.getInt("codigo");
		}              

		carregarListaTreino(codigoPlano);

		// Click no botao voltar
		Button btVoltar = (Button) findViewById(R.id.botao_valtartreino);
		btVoltar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				// Navegacao entre as telas
				startActivity(new Intent(ListaTreinoActivity.this, ListaPlanoCorridaActivity.class));
				finish();
			}
		});
	}
	
	private void carregarListaTreino(int codigoPlanoCorrida) {
		// Carregar os Treino do usuario
		RepositorioTreino rep = new RepositorioTreino(getApplicationContext());
		arrayTreino = rep.listar(" where planoCorrida = " + codigoPlanoCorrida);

		// Preenchimento do hashmap para criacao do adapter
		ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> map;
		for (Treino Treino : arrayTreino) {
			map = new HashMap<String, String>();
			map.put("codigo", String.valueOf(Treino.getCodigo()));
			map.put("semana", String.valueOf(Treino.getSemana()));
			map.put("diasemana", Treino.getDiaSemana().getDescricao());
			map.put("codigodiasemana", String.valueOf(Treino.getDiaSemana().getCodigo()));
			mylist.add(map);
		}

		// Criacao do adapter com hashmap
		lista = (ListView) findViewById(R.id.listatreinos);
		lista.setAdapter(new ListaTreinoAdapter(this, mylist, R.layout.linhatreinos,
				new String[] {"semana", "diasemana"}, 
				new int[] {R.id.campo_semana , R.id.campo_diasemana}));
		registerForContextMenu(lista);

		// click em um item da lista
		lista.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// Pega o elemento que foi clicado
				HashMap<String, String> map = (HashMap<String, String>) lista.getItemAtPosition(arg2);

				// Criacao dos parametros para passagem entre telas
				Bundle b = new Bundle();
				b.putInt("codigo", Integer.parseInt(map.get("codigo")));
				b.putInt("codigoPlano", codigoPlano);
				abrirEditar(b);
			}
		});
	}

	public void abrirEditar(Bundle extras){
		Intent i = new Intent(this,ListaExercicioActivity.class);
		finish();
		i.putExtras(extras);
		startActivity(i);
	}
}